Large mesh deformation using the volumetric graph laplacian

ABSTRACT

Large mesh deformation using the volumetric graph Laplacian is described. In one aspect, information is received from a user, wherein the information indicates how an original mesh is to be deformed. The original mesh is then deformed based on the information and application of a volumetric differential operator to a volumetric graph generated from the original mesh.

BACKGROUND

Mesh deformation is useful in a variety of applications in computermodeling and animation. For example, mesh deformation is useful to helpartists sculpt stylized body shapes and deformations forthree-dimensional (3-D) characters. However, large deformations such asthose found of characters performing non-rigid and highly exaggeratedmovements, remain challenging today. Existing mesh deformationtechniques often produce implausible results with unnatural volumechanges.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

In view of the above, large mesh deformation using the volumetric graphlaplacian is described. In one aspect, information is received from auser, wherein the information indicates how an original mesh is to bedeformed. The original mesh is then deformed based on the informationand application of a volumetric differential operator to a volumetricgraph generated from the original mesh

BRIEF DESCRIPTION OF THE DRAWINGS

In the Figures, the left-most digit of a component reference numberidentifies the particular Figure in which the component first appears.

FIG. 1 shows an exemplary system for large mesh deformation using thevolumetric graph Laplacian.

FIG. 2 shows an exemplary comparison of a conventional large meshdeformation and a large mesh deformation using the volumetric graphLaplacian 114.

FIG. 3 shows exemplary large twist deformation results.

FIG. 4 shows exemplary large bend deformation results

FIG. 5 shows an exemplary volumetric graph.

FIG. 6 shows exemplary operations to construct a volumetric graph.

FIG. 7 shows exemplary types of edge connections in a volumetric graph.

FIG. 8 shows exemplary curve-based deformation.

FIG. 9 shows an exemplary comparison of weighting schemes, includinguniform, reciprocal of edge length, and heat kernel (decayingexponential function of squared distance) weighting schemes.

FIG. 10 shows exemplary comparisons of conventional large meshdeformation techniques as compared to the large mesh deformation usingthe volumetric graph Laplacian.

FIG. 11 shows an exemplary procedure for large mesh deformation usingvolumetric graph Laplacian.

FIG. 12 illustrates an example of a suitable computing environment inwhich large mesh deformation using the volumetric graph Laplacian may befully or partially implemented.

DETAILED DESCRIPTION

Overview

Large mesh deformation using the volumetric graph Laplacian provides anovel technique for large deformations on 3-D meshes using thevolumetric graph Laplacian. A graph representing the volume inside theinput mesh is first constructed. The graph need not form a solid meshingof the input mesh's interior (the volumetric Laplacian operator can beapplied to a volumetric graph without meshing surface interiors). Graphedges simply connect nearby points in the volume. The graph's Laplacianencodes volumetric details as the difference between each point in thegraph and the average of its neighbors. Preserving these volumetricdetails during deformation imposes a volumetric constraint that preventsunnatural changes in volume. Also included in the graph are points ashort distance outside the mesh. This assists in avoiding localself-intersections. Volumetric detail preservation is represented by aquadric energy function. Minimizing the quadric energy functionpreserves details in a least-squares sense, distributing error uniformlyover the whole deformed mesh. The quadric energy function can also becombined with conventional constraints involving surface positions,details or smoothness, and efficiently minimized by solving a sparselinear system.

As described in greater detail below in reference to FIGS. 1 through 11,large mesh deformation using the volumetric graph Laplacian isimplemented in a 2-D curve-based deformation system allowing novice andseasoned users alike to create substantially pleasing deformations withlittle effort. This novel large mesh deformation technique does notrequire skeletons and key poses of a 3-D model as input and can handle awide range of non-rigid deformations. In one implementation, this systemfor large mesh deformation using the volumetric graph Laplacian isutilized to apply non-rigid and exaggerated deformations of 2-D cartooncharacters to 3-D meshes.

An Exemplary System

Although not required, large mesh deformation using the volumetric graphLaplacian is described in the general context of computer-programinstructions being executed by a computing device such as a personalcomputer. Program modules generally include routines, programs, objects,components, data structures, etc., that perform particular tasks orimplement particular abstract data types. While the systems and methodsare described in the foregoing context, acts and operations describedhereinafter may also be implemented in hardware.

FIG. 1 shows an exemplary system 100 for large mesh deformation usingthe volumetric graph Laplacian. In this implementation, system 100includes a general purpose computing device 102. Computing device 102represents any type of computing device such as a personal computer, alaptop, a server, handheld or mobile computing device (e.g., a cellularphone, personal digital assistant), and/or so on.

Computing device 102 includes program modules 104 and program data 106.Program modules 104 include, for example, large mesh deformation (usingthe volumetric graph Laplacian) module 108 (hereinafter often referredto as “deformation module 108”), and other program modules 110 such asan operating system, etc. Deformation module 108 implements a noveltechnique to generate large mesh deformations 112 on volumetric graphLaplacian's (VGLs) 114 generated from 3-D meshes 116 (original meshes).Deformation module 108 utilizes VGL to represent volumetric details asthe difference between each point in a 3-D volume and the average of itsneighboring points in a graph. VGL allows deformation module 108 topreserve surface details using differential domain techniques, andthereby produce visually pleasing deformation results 112 bydistributing errors globally through least-squares minimization. Byworking in the volumetric domain instead of on the surface of mesh 116,deformation module 108 utilizes VGL to effectively impose volumetricconstraints, and thereby avoid unnatural volume changes and localself-intersections.

FIG. 2 shows an exemplary comparison of a conventional large meshdeformation and a large mesh deformation using the volumetric graphLaplacian 114. More particularly, image 202 shows an exemplary originalmesh 116. Image 204 shows an exemplary result of deforming the originalmesh 116 using conventional Poisson editing mesh deformation techniques.Image 206 shows an exemplary result of large mesh deformation of theoriginal mesh 116 using the volumetric graph Laplacian 114. As shown inthe example of image 204, deformation of the original mesh 116 usingPoisson mesh editing causes unnatural shrinkage, especially in themodel's right thigh.

Using a volumetric graphic Laplacian 114, deformation module 108represents volumetric constraints by a quadric energy function.Deformation module 108 officially minimizes this function by a sparselinear system, and combines the function with other surface constraints(e.g., on surface positions, surface details, surface smoothness, etc.).To apply a volumetric graph Laplacian 114 to a triangular mesh,deformation module 108 first constructs a volumetric graph 118, whichincludes points of the original mesh 116 as well as points derived, asdescribed below, from a simple lattice (inside graph) lying inside themesh 116. Graph edges connect these points. These graph edges are asuperset of the edges of the original mesh 116. The graph need not forma meshing (volumetric tessellation into tetrahedra or other finiteelements) of the interior of the mesh 116.

A user specifies a deformation by identifying a limited set of points120 (one or more control curves) on the original mesh 116. The specifiedpoints 120 define a curve and indicate where these points 120 migrate toin a resulting deformation. For purposes of exemplary illustration,specified points 120, in this example, identify a curve. Deformationmodule 108 generates a quadric energy function with a minimum to mapspecified points 120 to their specified destination while maintainingsurface detail and roughly preserving volume.

In this manner, deformation module 108 solves the problem of large meshdeformation by applying a volumetric differential operator to avolumetric graph 118 without meshing surface interiors. In contrast,conventional differential approaches considered only surface operators.A naive way to extend these operators from surfaces to solids is todefine them over a tetrahedral mesh of the object interior. However,solidly meshing a complex object is notoriously difficult. Existing meshdeformation techniques typically re-mesh geometry and disturb itsconnectivity, thereby violating a common requirement in meshdeformation. Solid meshing also implies many constraints (e.g., that notetrahedron be flipped and that each interior vertex remain in thevisual hull of its neighbors). Such constraints make computationallyimpractical for conventional mesh deformation techniques to economicallydistribute interior points, and add an “exterior shell” (as performed bysystem 100) to prevent local self-intersection.

Exemplary operations of deformation module 108 to deform a volumetricgraph 118 and perform deformation from 2-D curves (respective portionsof specified points 120) are now described.

Exemplary Deformation of the Volumetric Graph

Let M=(V,K) be a triangular mesh 116 targeted for deformation, where Vis a set of n point positions (i.e., point set of the original mesh116), V={p_(i)εR³|1≦i≦n}, and K is an abstract simplicial complexcontaining all vertex connectivity information. For purposes ofexemplary illustration, such vertex connectivity information is shown asa respective portion of “other data” 122. There are three types ofelements in K, vertices {i}, edges {i,j} and faces {i,j,k}.

Laplacian Deformation on Abstract Graphs

Suppose G=(P,E) is a graph, where P is a set of N point positions,wherein P={p_(i)εR³|1≦i≦N}, and E={(i,j)|p_(i) is connected to p_(j)} isthe set of edges. The Laplacian of a graph is analogous to the Laplaceoperator on manifolds. The Laplacian computes the difference betweeneach point p_(i) in the graph G and a linear combination of itsneighboring points: $\begin{matrix}{{\delta_{i} = {{L_{G}( p_{i} )} = {p_{i} - {\sum\limits_{j \in {N{(i)}}}{w_{ij}p_{j}}}}}},} & (1)\end{matrix}$where N(i)={j|{i,j}εE} are the edge neighbors, w_(ij) is the weight forpoint p_(j), and δ_(i) is the Laplacian coordinate of the point p_(i) ingraph G. L_(G) is called the Laplace operator of the graph G. Weightsw_(ij) are positive and satisfy Σ_(jεN(i))w_(ij)=1. The simplestweighting is uniform weighting w_(ij)=1/|N(i)|. (Deformation module 108implements a more complicated weighting scheme, as described below inthe section titled “Exemplary Deformation of the Volumetric Graph”).

To control a deformation, these are inputs deformed positions as controlcurves (i.e., specified points 120) q_(i),iε{1, . . . , m} for a subsetof the N mesh vertices. Deformation module 108 utilizes these specifiedcontrol curves to compute a new (deformed) Laplacian coordinate δ′_(i)for each point i in the graph. The deformed positions of the meshvertices p′_(i) (e.g., see “other data” 122) are then obtained bysolving the following quadric minimization problem: $\begin{matrix}{\min\limits_{p_{i}^{\prime}}{( {{\sum\limits_{i = 1}^{N}{{{L_{G}( p_{i}^{\prime} )} - \delta_{i}^{\prime}}}^{2}} + {\alpha{\sum\limits_{i = 1}^{m}{{p_{i}^{\prime} - q_{i}^{\prime}}}^{2}}}} ).}} & (2)\end{matrix}$The first term of equation (2) represents preservation of local detailand the second term constrains the positions of those vertices 120directly specified by the user. The parameter α balances these twoobjectives.

The deformed Laplacian coordinates are computed as follows:δ′_(i)=T_(i)δ_(i)where δ_(i) is the Laplacian coordinate in the rest pose, defined inequation (1), and T_(i) transforms the Laplacian coordinate into thedeformed pose. In this implementation, a general transform T_(i) whichincludes anisotropic scaling is too powerful and can “fit away” localdetail. To address this, deformation module 108 restricts T_(i) to arotation and isotropic scale.

Given the deformed positions of a subset of the vertices q_(i),well-known methods can be used to obtain T_(i). In this implementation,deformation module 108 utilizes a method described below in the sectiontitled “Exemplary Deformation of the Volumetric Graph”. This methodologypropagates the local transformation from the specified region ofdeformation to the entire mesh (resulting in a large mesh deformation112), blending the transform towards the identity away from thedeformation site.

If the graph is a triangular mesh, the graph Laplacian is identical tothe mesh Laplacian (in this example, a mesh, or surface Laplacian is aLaplacian of the original mesh). Using the mesh Laplacian to encodesurface details, detailed geometric structure is preserved over a widerange of editing operations. However, for large deformations, suchmethodologies exhibit unnatural volume changes (e.g., see image (a) ofFIG. 3), and/or local self-intersections (e.g., see image (a) of FIG.4).

FIG. 3 shows exemplary large twist deformation results. Moreparticularly, image (a) of FIG. 3 shows exemplary large twistdeformation based on Laplacian surface. Image (b) of FIG. 3 showsexemplary large twist deformation based on a Poisson mesh. Image (c)shows exemplary large twist deformation based on the VGL operations ofdeformation module 108.

FIG. 4 shows exemplary large bend deformation results. Moreparticularly, image (a) of FIG. 4 shows exemplary large bend deformationbased on Laplacian surface. Image (b) of FIG. 3 shows exemplary largebend deformation based on a Poisson mesh. Image (c) shows exemplarylarge bend deformation based on the VGL operations of deformation module108.

We now describe how deformation module 108 imposes volumetricconstraints by constructing a volumetric graph 118 for an original mesh116 to reduce unnatural volume changes and/or local self-intersections.

Exemplary Construction of a Volumetric Graph

Deformation module 108 avoids large volume changes and localself-intersections, but does not guarantee elimination of globalself-intersections. In this implementation, global self-intersectionsare managed by a user. Deformation module 108 builds a volumetric graph118 utilizing two types of intermediate graphs: inside and outsidegraphs. An inside graph G_(in) fills the interior volume of the mesh 116and prevents large volume changes, while an outside graph G_(out)prevents local self-intersection.

FIG. 5 shows an exemplary volumetric graph 118. More particularly,volumetric graph 502 illustrates exemplary G_(in), and volumetric graph504 illustrates exemplary G_(out).

One method to obtain G_(in) is to tetrahedralize the interior volume ofa surface mesh 116. However, tetrahedral mesh generation is typicallysubstantially difficult and computationally expensive to implement, notto mention that such mesh generation is generally difficult to implementin a robust manner (e.g. typically producing poorly shaped tetrahedrafor complicated models). Rather than tetrahdralizing the interior volumeof a surface mesh 116, deformation module 108 implements substantiallysimpler operations produce the less-restrictive volumetric graph.

FIG. 6 shows exemplary steps to construct a volumetric graph 118. Moreparticularly, and in this implementation as shown in FIG. 6, deformationmodule 108 generates a volumetric graph 118 as follows:

Construct an inner shell M_(in) for the mesh M by offsetting each vertexa distance in the direction opposite its normal. This is illustrated,for example, in image (a) of FIG. 6.

Embed M_(in) and M in a body-centered cubic (BCC) lattice. Removelattice nodes outside. Results of these exemplary operations are shown,for example, in image (b) of FIG. 6.

Build edge connections among M, M_(in), and lattice nodes. Results ofthis operation are shown, for example, in image (c) of FIG. 6.

Simplify the graph using edge collapse and smooth the graph. Results ofthis operation are shown, for example, in image (d) of FIG. 6.

In this implementation, the purpose of the inner shell M_(in) is toensure that inner points are inserted even within thin features (e.g.,like the tail of the cat) that may be missed by lattice samplingoperations. To compute the inner shell, deformation module 108 utilizesoperations based on simplification envelopes. In each iteration,deformation module 108 attempts to move each vertex a fraction of theaverage edge length opposite to its normal vector. After moving avertex, deformation module 108 tests its adjacent triangles forintersections with each other and the rest of the model. If nointersections are found, results of these operations are accepted.Otherwise, results of the operations are rejected and the vertex ismoved back. The iterations terminate when all vertices have been movedthe desired distance or can no longer be moved.

FIG. 7 shows exemplary types of edge connections in a volumetric graph.More particularly, image (a) of FIG. 7 shows exemplary boundary edges.Image (b) of FIG. 7 shows exemplary interior edges. In view of theseexamples, it can be seen that a BCC lattice includes nodes at everypoint of a Cartesian grid along with the cell centers (e.g., image (b)).Node locations may be viewed as belonging to two interlaced grids. Thislattice occurs as a crystal structure in nature with desirable rigidityproperties. In this implementation, the great interval is set to equalthe average edge length.

Three types of edge connections form an initial volumetric graph 118.First, deformation module 108 connects each vertex in M to itscorresponding vertex in M_(in) (e.g., FIG. 7, image (a)). The shorterdiagonal for each prism face is included as well. Second, deformationmodule 108 connects each inner node of the BCC lattice with its eightnearest neighbors in the other interlaced grid (e.g., FIG. 7, image(b)). Third, deformation module 108 connects M_(in) and nodes of the BCClattice. For each edge in the BCC lattice that intersects M_(in) and hasat least one node inside M_(in), deformation module 108 connects the BCClattice node inside M_(in) to the point in M_(in) closest to thisintersection.

Deformation module 108 implements simplification and smoothingoperations on the initial graph to make the graph more uniform. To thisend, deformation module 108 evaluates the edges of graph 118 inincreasing order of length. If the length of an edge is less than athreshold (half the average edge length of M), it is collapsed to theedge's midpoint. After simplification, several smoothing iterations(three in our implementation) are performed in which each point is movedto the average of its neighbors. In this implementation, neithersimplification nor smoothing are applied to the vertices of M.

To construct the outside graph G_(out) (part of volumetric graph 118generation operations), deformation module 108 utilizes the iterativenormal-offset method described previously to construct this volumetricgraph, but toward the outside rather than inside the surface, to formM_(out). Deformation module 108 builds the connection between M andM_(out) in the same way as between M and M_(in).

Note that in this implementation, both G_(in) and G_(out) areintermediate data structures (respectively represented in “other data”122) that are not directly viewed by a user, and that are discardedafter user interaction. These data structures serve only to constrainthe deformation of the mesh surface. Though intersections of M_(in) andM_(out) with themselves and with M can occur, especially on meshescontaining regions of high curvature, such intersections cause nodifficulty in interactive system 100.

Exemplary Deformation of the Volumetric Graph

To balance between preserving the original surface's details andconstraining the volume, deformation module 108 utilizes a modificationof the energy function in Equation (2) to the following general form:$\begin{matrix}{{{\sum\limits_{i = 1}^{n}{{{L_{M}( p_{i}^{\prime} )} - ɛ_{i}^{\prime}}}^{2}} + {\alpha{\sum\limits_{i = 1}^{m}{{p_{i}^{\prime} - q_{i}}}^{2}}} + {\beta{\sum\limits_{i = 1}^{N}{{{L_{G^{\prime}}( p_{i}^{\prime} )} - \delta_{i}^{\prime}}}^{2}}}},} & (3)\end{matrix}$wherein the first n points in graph G belong to the mesh M. L_(M) is thediscrete mesh Laplacian operator. G′ is the sub-graph of G formed byremoving those edges belonging to M. For points on the original mesh M,_(ε′i)(1≦i≦n) are the mesh Laplacian coordinates in the deformedcoordinate frame. For points in the volumetric graph G′, δ′_(i)(1≦i≦N)are the graph Laplacian coordinates in the deformed frame. Energy isthus decomposed into three terms corresponding to preservation ofsurface details, enforcement of a user's chosen deformation locations(specified points 120), and preservation of volumetric details/rigidity.

β balances between surface and volumetric details. Deformation module108 specifies β′ where β=nβ/N. Factor n/N normalizes the weight so thatit is insensitive to the lattice density of the volumetric graph. Withthis normalization, β=1 preserves volume and preventsself-intersections. In this implementation, 0.1<α<1, and α is notnormalized. This is because it is desirable for the constraint strengthto depend on the number of constrained points relative to the totalnumber of mesh points. In this implementation, α is set to 0.2 bydefault.

In an alternative embodiment, the volumetric constraint of Equation (3)is combined with the quadric smoothness energy (this is not done if thefocus is to deform models with significant geometric detail).

Exemplary Propagation of Local Transforms

To obtain the local transforms T_(i) that take the Laplacian coordinatesin the rest frame, δ_(i) and ε_(i), to the new Laplacian coordinatesδ′_(i) and _(ε′i) in the deformed frame, deformation module 108implements WIRE deformation operations. In these operations, deformationmodule 108 selects a sequence of mesh vertices forming a curve 120.These selected mesh vertices are then deformed to a new state. Thiscurve controls the deformation and defines the q_(i) (e.g., see image(a) of FIG. 8).

FIG. 8 shows exemplary curve-based deformation. More particularly, FIG.8, image (a), shows and exemplary original mesh 116 and an exemplarycontrol curve 802. Image (b) of FIG. 8, shows exemplary strength fieldsof 0 (e.g., field 804—darker shading) and 1 (e.g., field 806—lightershading). FIG. 8, image (c), shows an exemplary deformed mesh generatedfrom curve-based deformation operations of deformation module 108 ofFIG. 1.

A control curve (e.g., control curve 802) specifies only the extent ofwhere vertices on the curve are to be deformed. Deformation module 108,utilizing the propagation algorithm, first determines where neighboringgraph points (1-ring mesh neighbors of the control points) deform to,then infers local transforms at the curve points, and finally propagatesthe transforms over the whole mesh (e.g., resulting in a deformed mesh112). These operations began by locating mesh neighbors of the q_(i) andobtaining their deformed positions using WIRE. More particularly, letC(u) and C′(u) be the original and deformed control curves respectively,parameterized by arc length uε[0,1]. Given a neighboring point pεR³, letu_(p)ε[0,1] be the parameter value minimizing distance between p and thecurve C(u). The deformation maps p to p′ such that C maps to C′ andpoints nearby move analogously:p′=C′(u _(p))+R(u _(p))(s(u _(p))(p−C(u _(p)))).In this equation, R(u) is a 3×3 rotation matrix which takes a tangentvector t(u) on C and maps it to its corresponding tangent vector t′(u)on C′ by rotating around t(u)×t′(u)·s(u) is a scale factor. It iscomputed at each curve vertex as the ratio of the sum of lengths of itsadjacent edges in C′ over this length sum in C, and then definedcontinuously over u by linear interpolation.

The deformed coordinates for each point on the control curve and for its1-ring neighbors on the mesh have now been determined. At this point,operations of deformation module 108 proceed to compute the T_(i) ateach point on the control curve. Deformation mud 108 defines a rotationby computing a normal and a tangent vector as the perpendicularprojection of one edge vector with this normal. The normal is computedas a linear combination weighted by face area of face normals around themesh point i. The rotation is represented as a quaternion, which meansthe rotation angle should be less than 180 degrees. The scale factor ofT_(i) is given by s(u_(p)).

The transform is then propagated from the control curve to all graphpoints p via a deformation strength field ƒ(p) which decays away fromthe deformation site (e.g., see image (b) of FIG. 8). Constant, linear,and Gaussian strength fields can be chosen and are based on the shortestedge path (discrete geodesic distance) from p to the curve.

In one implementation, deformation module 108 implements a simplepropagation scheme by assigning to p a rotation and scale from the pointq_(p) on the control curve closest to p. A smoother result is obtainedby computing a weighted average over all the vertices on the controlcurve instead of the closest. Weighting by the reciprocal of distance1/∥p−q_(i)∥_(g) or by a Gaussian function such as:$\exp( {- \frac{( {{{p - q_{i}}}_{g} - {{p - q_{p}}}_{g}} )^{2}}{2\sigma^{2}}} )$Such a Gaussian function works well in system 100. ∥p−q∥_(g) denotes thediscrete geodesic distance from p to q. The term σ controls the width ofthe Gaussian. Weighting between multiple curves is similar, except thatthe quaternion and scale is accumulated over multiple curves.

The final transform matrix at point p is:T _(p)=ƒ(p)T _(p)+(1−ƒ(p))Iwhere T_(p) is p's weighted average transform. This formula simplyblends that transform with the identity using the strength field.Laplacian coordinates thus approach their original (rest) state outsidethe deformation's influence region.

In contrast to conventional propagation schemes, the propagation schemeimplemented by deformation module 108, computes a transform for eachgraph vertex and applies the transform to its Laplacian coordinate.Additionally, some conventional techniques generally compute a transformfor each triangle and apply it to the triangle's vertices. However,independently transforming each triangle disconnects it from itsneighbors in the mesh. The Poisson equation stitches triangles backtogether to preserve each triangle's orientation and scale in aleast-squares sense. Extending this to a volumetric domain requires atetrahedral mesh.

Rather than computing transforms at the deformation site and propagatingthe transformations away from the deformation site, conventional meshdeformation techniques introduce additional degrees of freedom bydefining an unknown, least-squares optimal transform, which takes alocal neighborhood of points from the rest state to the deformed state.The defined transform is typically restricted to rotations and scales toprevent loss of local detail. For the system to remain quadratic andthus easily solvable, rotations are defined using the small-angleapproximation. This conventional technique provides a poor approximationfor large deformations, which then require more complicated, iterativerefinement.

Exemplary Weighting Scheme

For the mesh Laplacian L_(M), deformation module 108 utilizes aweighting scheme with cotangent weights:w _(ij)∝(cot α_(ij)+cot β_(ij)),where α_(ij)=∠(p_(i),p_(j−1),p_(j)) and β_(ij)=∠(p_(i),p_(j+1),p_(j)).

For the graph Laplacian L_(G′), deformation module 108 computes theweights by solving a quadratic programming problem. Independently foreach graph vertex i, deformation module 108 solves the following problemto obtain the weights w_(ij) (for clarity the i subscript is dropped):$\min\limits_{w_{j}}( {{{p_{i} - {\sum\limits_{j \in {N{(i)}}}{w_{j}p_{j}}}}}^{2} + {\lambda( {\sum\limits_{j \in {N{(i)}}}{w_{j}( {p_{i} - p_{j}} \rbrack}} )}^{2}} )$${{subject}\quad{to}\quad{\sum\limits_{j \in {N{(i)}}}w_{j}}} = {{1\quad{and}\quad w_{j}} > {\xi.}}$Referring to the above equation, the first energy term aims at weightsthat generate Laplacian coordinates of smallest magnitude. The secondterm is based on a scale-dependent umbrella operator, which prefersweights in inverse proportion to the edge lengths. The parameter λbalances these two objectives, while the parameter ξ prevents smallweights. In this implementation, λ and ξ are both set to equal 0.01.

FIG. 9 shows an exemplary comparison of weighting schemes, includinguniform (a), reciprocal of edge length (b), and heat kernel (decayingexponential function of squared distance) (c). As shown in theseexemplary comparisons, the weighting scheme implemented by thedeformation module of system 100 shown in image (d) is smoother and moreuniform than the results from other weighting schemes.

Exemplary Quadric Energy Minimization

Given the new Laplacian coordinates, deformation module 108 minimizesthe quadric energy in Equation (3) by solving the following equations:L _(M)(p′ _(i))+βL _(G′)(p′ _(i))=ε′_(i)+βδ′_(i) , iε1, . . . , n,βL _(G′)(p′ _(i))=βδ′_(i) , iεn+1, . . . , N,αp′ _(i) =αq′ _(i) , iε1, . . . , mThis is a sparse linear system Ax=b. The matrix A is dependent only onthe graph before deformation while b is also dependent on the currentLaplacian coordinates and position constraints. Therefore, A is fixed aslong as deformation module 108 does not switch the mesh or graph and thecontrol points while b changes constantly during interactivedeformation. Thus, deformation module 108 precomputes A⁻¹ using LUdecomposition and dynamically executes the back substitution step toobtain A⁻¹ b.

Exemplary Multi-Resolution Operations

Multi-resolution editing can be used to accelerate differential methods,especially for very large models. For example, the Stanford armadillomodel of FIG. 2 contains 170K vertices. Deformation module 108 generatesalmost six times as many variables as vertices in the linear system tobe solved when creating the volumetric graph for the model. Solving sucha large system is computationally expensive for an interactive system.In one implementation to reduce computation expense, deformation module108 generates a simplified mesh with fewer vertices (e.g., 15K for thearmadillo). A volumetric graph 118 is then generated from the simplifiedmesh. After deforming the simplified representation of the mesh,deformation module 108 adds back details to get a deformedhigh-resolution mesh.

Exemplary Deformation From 2-D Curves

The basic mode of interaction of system 100 is as follows. A user firstspecifies a control curve 120 on the mesh surface 116 by selecting asequence of mesh vertices which are connected by the shortest edge(Dijkstra) path. This 3-D curve is projected onto one or more planes(projection planes) to obtain 2-D curves which can then be edited. Afterediting, the modified 2-D curves are projected back to 3-D to get thedeformed control curve, which forms the basis for deformation of theprevious section.

Exemplary Curve Projection

Given the original control curve, deformation module 108 automaticallyselects a projection plane based on the original control curve's averagenormal and principal vectors. Deformation module 108 computes theprincipal vectors as the two eigenvectors corresponding to the largesteigenvalues from a principal component analysis (PCA) over the curve'svertices. In most cases, the cross product of the average normal and thefirst principal vector provides a satisfactory plane. When the length ofthe average normal vector is small, as for a closed planar curve, thetwo principal vectors are utilized instead. In this implementation, auser can also directly choose or modify the projection chosen by system100.

Exemplary Curve Editing

Projected 2-D curves inherit geometric detail from the original mesh 116which complicates editing. Multi-resolution curve editing provides onesolution for B-spline curves. Deformation module 108 implements editingoperations for discrete curves based on Laplacian coordinates. TheLaplacian coordinate of a curve vertex is the difference between itsposition and the average position of its two adjacent neighbors, orsingle neighbor for terminal vertices.

The discrete 2-D curve to be edited is denoted as C. A cubic B-splinecurve C_(b) is first computed as a least-squares fit to C, representingC's low frequencies. Then a discrete version of C_(b), denoted C_(d), iscomputed by mapping each vertex of C onto C_(b) using proportionalarc-length mapping. The simple B-spline curve C_(b) can now beconveniently edited. After editing, deformation module 108 obtains themodified B-spline curve C′_(b) and a new discrete version C′_(d). Thesecurves indicate the user's desired deformation but lack the originalcurve's detail. To restore the original curves detail, deformationmodule 108, at each vertex of C, identifies the unique rotation andscale that map its location from C_(d) to C′_(d). Applying thistransformation to the Laplacian coordinates on C and solving equation(2) (without the second point constraint term) over the simple curvegraph, results in the generation of a new curve C′. This new curvepreserves the details of C but follows the user's coarse-scalemodification. Essentially, this is a trivial version of local transform“propagation” for deforming a mesh, but for the curve case it can bedefined independently per point and need not be propagated.

This algorithm is posed as a curve analogy: given a pair of sourcecurves, C_(s) and C′_(s), and a target curve C, generate a new curve C′such that the relationship between C and C′ is analogous to therelationship between C_(s) and C′_(s). While conventional meshdeformation operations may directly transform vertices, deformationmodule 108 transforms corresponding differential coordinates of thevertices to more uniformly distributed errors across the whole curve.

Initially, C_(b) has two knots at the curve endpoints. A user can addknots to perform editing at a more detailed level. System 100 supportstwo editing modes: one manipulates a coarse-scale fit to the originalcurve, C_(b), and the other sketches an entirely new curve. In thelatter case, correspondence between the sketched curve and the controlcurve is achieved by arclength by default. In this implementation, theuser can also specify a series of corresponding points between the twocurves.

Exemplary Deformation Re-Targeting From 2-D Cartoons

In one implementation, system 100 re-targets deformation of 2-D cartoonsto 3-D meshes 112 is a direct exemplary application of system 100's 2-Dsketch-based deformation. To this end, a user specifies one or more 3-Dcontrol curves 120 on the mesh 116 along with their projection planes,and for each curve, a series of 2-D curves 120 in the cartoon imagesequence that will be used to drive the deformation of mesh 116.

FIG. 9 shows exemplary 3-D and 2-D control curve specification fordeformation retargeting from 2-D images. More particularly, controlcurve sets 902 (i.e., 902-1 a through 902-3 b) are specified on a 3-Dmesh, and control curve sets 904 (i.e., 904-1 a through 904-3 b) arespecified on a 2-D image. (For purposes of exemplary illustration, 2-Dand 3-D control curves are shown as specified points 120 of FIG. 1).

Suppose that C_(i) is the projection of a 3-D control curve 902, and itscorresponding curves 904 in the cartoon sequence are C_(i,j),jε{1, . . ., k}. The index i is for different control curves, driving differentparts of the model like arms and legs. The index j is the frameindex—the same control curve has a corresponding cartoon curve for eachframe. Deformation module 108 automatically derives a deformationsequence mapping C_(i) to successive C_(i,j). With respect to thesedeformation operations, it is not necessary to generate a deformationfrom scratch at every frame. In one implementation, a user may selectjust a few key frames and specify cartoon control curves just for theselected key friends, rather than specifying control curves for anentire frame sequence. Deformation module 108 implements automaticinterpolation operations based on differential coordinates tointerpolate between key frames. For example, suppose there are twomeshes M and M′ with the same connectivity. These two meshes representthe deformed mesh 112 at two key frames.

Deformation module 108 begins by computing Laplacian coordinates foreach vertex on the two meshes. Deformation module 108 computes arotation and scale in the local neighborhood of each vertex p, takingthe Laplacian coordinate from its location in M to M′ (e.g., see theabove section titled “Exemplary Deformation of the Volumetric Graph”).Denote the transformation by T_(p). By interpolating each transformationfrom the identity to T_(p) over time, we get a smoothly varyingLaplacian coordinate from M to M′. At this point, deformation module 108solves the equation (2) to provide a sequence of meshes from M to M′.

The 2-D cartoon curves only specify how the deformed curve projects in asingle plane, leaving unspecified its shape perpendicular to the plane.In view of this, system 100 allows a user to select other projectionplanes to specify these extra degrees of freedom, if desired.

FIG. 10 shows additional exemplary comparisons of conventional largemesh deformation techniques as compared to the large mesh deformationusing the volumetric graph Laplacian of system 100. More particularly,from left to right, the top row respectively shows an image of anoriginal mesh, and exemplary image showing results of Poisson meshediting the deformation, and an image showing exemplary results of largemesh deformation using the volumetric graph Laplacian. The second, orbottom row, respectively shows enlarged portions of the deformed regionsassociated with the immediately above image in the top row. That is,images in column (a) are associated with an original mesh 116, images incolumn (b) correspond to results of the original mesh having beendeformed using Poisson mesh editing, and images in column (c) correspondto results of the original mesh having been deformed using large meshdeformation using the volumetric graph Laplacian of system 100.

Exemplary Procedure

FIG. 11 shows an exemplary procedure 1100 for large mesh deformationusing the volumetric graph Laplacian. For purposes of discussion andexemplary illustration, operations of this procedure are described withrespect to components of FIG. 1. The left-most digit of a componentreference number identifies the particular figure in which the componentfirst appears. Additionally, although FIG. 11 presents operations ofprocedure 1100 in a particular order, operations associated with anyspecific block of the procedure may be implemented in a different order.For example, operations of block 1104 may be implemented beforeoperations of block 1102, and/or so on.

At block 1102, deformation module 108 constructs a volumetric graph 118from an original mesh 116. In one implementation, deformation module 108constructs the volumetric graph using intermediate inside and outsidegraph data structures. The inside graph is a simple lattice that isconstructed to lie inside the original mesh 116. The inside graphincludes original mesh points as well as derived points, and is used bydeformation module 108 to prevent large volume changes during large meshdeformation operations. In one implementation, deformation module 108constructs the inner graph using simplification envelopes to offset eachvertex of the original mesh in the direction opposite its normal. In oneimplementation, deformation module 108 constructs the outside graph toprevent local self-intersection by iteratively offsetting each vertex ofthe original mesh toward the outside of the original mesh surface.Deformation module 108 builds connections between the inside and outsidegraphs and the original mesh 116 targeted for deformation to generatethe volumetric graph.

At block 1104, deformation module 108 allows a user to specify a set of3-D control curves 120. Each 3-D control curve identifies a set ofpoints on the original mesh 116. In one implementation, deformationmodule 108 presents a user interface (UI) on a display device. A 3-Dview of a original mesh 116 is presented to the user by the UI. Using amouse, or some other type of pointing/selection device, the user selectsa set of points on the original mesh 116 defining the 3-D control curve120.

At block 1106, deformation module 108 allows the user to edit the 3-Dcontrol curves 120 as respective 2-D control curves 120 to generatedeformed control curves 124. The deformed control curves 124 indicatehow the original mesh 116 is to be deformed. In this implementation, auser specifies how the original mesh 116 is to be deformed as follows.Deformation module 108 projects the specified 3-D control curves 120onto a projection plane within the UI as 2-D control curves 120. Theuser deforms the original mesh 116 by manipulating the projected 2-Dcontrol curves 120 using the provided UI. This indicates where thepoints specified in the 3-D control curves 120 are to be moved as aresult of the defined deformation. For example, in one implementation, auser manipulates the projected 2-D control curves by selecting a 2-Dcontrol curve with a pointing device such as a mouse, a graphics pen,and/or so on, and modifies the 2-D control curve 120. For instance, theuser may draw a new curve representing a target curve (i.e.,deformation), directly edit the 2-D curve using B-spline control pointspresented on the 2-D curve by the UI, etc.

At block 1108, deformation module 108 creates the Laplacian of thevolumetric graph 118 (i.e., the volumetric graph Laplacian 114) toencode volumetric details as the difference between each point in thegraph and the average of its neighbors. These volumetric details areutilized during deformation operations to impose a volumetric constraintthat prevents unnatural changes in volume. These volumetric details alsoincluded points a short distance outside the original mesh 116, whichare used during deformation operations to substantially prevent localself-intersections of the volume.

At block 1110, deformation module 108 deforms the original mesh 116based on the deformed control curves 124. In this manner, system 100provides a curve-based deformation system allowing a user to createlarge mesh deformations.

An Exemplary Operating Environment

FIG. 12 illustrates an example of a suitable computing environment inwhich large mesh deformation using the volumetric graph Laplacian may befully or partially implemented. Exemplary computing environment 1200 isonly one example of a suitable computing environment for the exemplarysystem 100 of FIG. 1 and exemplary operations of FIG. 11, and is notintended to suggest any limitation as to the scope of use orfunctionality of systems and methods the described herein. Neithershould computing environment 1200 be interpreted as having anydependency or requirement relating to any one or combination ofcomponents illustrated in computing environment 1200.

The methods and systems described herein are operational with numerousother general purpose or special purpose computing system, environmentsor configurations. Examples of well-known computing systems,environments, and/or configurations that may be suitable for useinclude, but are not limited to personal computers, server computers,multiprocessor systems, microprocessor-based systems, network PCs,minicomputers, mainframe computers, distributed computing environmentsthat include any of the above systems or devices, and so on. Compact orsubset versions of the framework may also be implemented in clients oflimited resources, such as handheld computers, or other computingdevices. The invention, although not required, may be practiced in adistributed computing environment where tasks are performed by remoteprocessing devices that are linked through a communications network. Ina distributed computing environment, program modules may be located inboth local and remote memory storage devices.

With reference to FIG. 12, an exemplary system providing large meshdeformation using the volumetric graph Laplacian includes ageneral-purpose computing device in the form of a computer 1210implementing, for example, system 100 of FIG. 1. Components of computer1210 may include, but are not limited to, processing unit(s) 1220, asystem memory 1230, and a system bus 1221 that couples various systemcomponents including the system memory to the processing unit 1220. Thesystem bus 1221 may be any of several types of bus structures includinga memory bus or memory controller, a peripheral bus, and a local bususing any of a variety of bus architectures. By way of example and notlimitation, such architectures may include Industry StandardArchitecture (ISA) bus, Micro Channel Architecture (MCA) bus, EnhancedISA (EISA) bus, Video Electronics Standards Association (VESA) localbus, and Peripheral Component Interconnect (PCI) bus also known asMezzanine bus.

A computer 1210 typically includes a variety of computer-readable media.Computer-readable media can be any available media that can be accessedby computer 1210, including both volatile and nonvolatile media,removable and non-removable media. By way of example, and notlimitation, computer-readable media may comprise computer storage mediaand communication media. Computer storage media includes volatile andnonvolatile, removable and non-removable media implemented in any methodor technology for storage of information such as computer-readableinstructions, data structures, program modules or other data. Computerstorage media includes, but is not limited to, RAM, ROM, EEPROM, flashmemory or other memory technology, CD-ROM, digital versatile disks (DVD)or other optical disk storage, magnetic cassettes, magnetic tape,magnetic disk storage or other magnetic storage devices, or any othermedium which can be used to store the desired information and which canbe accessed by computer 1210.

Communication media typically embodies computer-readable instructions,data structures, program modules or other data in a modulated datasignal such as a carrier wave or other transport mechanism, and includesany information delivery media. The term “modulated data signal” means asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in the signal. By way of exampleand not limitation, communication media includes wired media such as awired network or a direct-wired connection, and wireless media such asacoustic, RF, infrared and other wireless media. Combinations of the anyof the above should also be included within the scope ofcomputer-readable media.

System memory 1230 includes computer storage media in the form ofvolatile and/or nonvolatile memory such as read only memory (ROM) 1231and random access memory (RAM) 1232. A basic input/output system 1233(BIOS), containing the basic routines that help to transfer informationbetween elements within computer 1210, such as during start-up, istypically stored in ROM 1231. RAM 1232 typically contains data and/orprogram modules that are immediately accessible to and/or presentlybeing operated on by processing unit 1220. By way of example and notlimitation, FIG. 12 illustrates operating system 1234, applicationprograms 1235, other program modules 1236, and program data 1237.

The computer 1210 may also include other removable/non-removable,volatile/nonvolatile computer storage media. By way of example only,FIG. 12 illustrates a hard disk drive 1241 that reads from or writes tonon-removable, nonvolatile magnetic media, a magnetic disk drive 1251that reads from or writes to a removable, nonvolatile magnetic disk1252, and an optical disk drive 1255 that reads from or writes to aremovable, nonvolatile optical disk 1256 such as a CD ROM or otheroptical media. Other removable/non-removable, volatile/nonvolatilecomputer storage media that can be used in the exemplary operatingenvironment include, but are not limited to, magnetic tape cassettes,flash memory cards, digital versatile disks, digital video tape, solidstate RAM, solid state ROM, and the like. The hard disk drive 1241 istypically connected to the system bus 1221 through a non-removablememory interface such as interface 1240, and magnetic disk drive 1251and optical disk drive 1255 are typically connected to the system bus1221 by a removable memory interface, such as interface 1250.

The drives and their associated computer storage media discussed aboveand illustrated in FIG. 12, provide storage of computer-readableinstructions, data structures, program modules and other data for thecomputer 1210. In FIG. 12, for example, hard disk drive 1241 isillustrated as storing operating system 1244, application programs 1245,other program modules 1246, and program data 1247. Note that thesecomponents can either be the same as or different from operating system1234, application programs 1235, other program modules 1236, and programdata 1237. Operating system 1244, application programs 1245, otherprogram modules 1246, and program data 1247 are given different numbershere to illustrate that they are at least different copies.

A user may enter commands and information into the computer 1210 throughinput devices such as a keyboard 1262 and pointing device 1261, commonlyreferred to as a mouse, trackball or touch pad. Other input devices (notshown) may include a microphone, joystick, graphics pen and pad,satellite dish, scanner, or the like. These and other input devices areoften connected to the processing unit 1220 through a user inputinterface 1260 that is coupled to the system bus 1221, but may beconnected by other interface and bus structures, such as a parallelport, game port or a universal serial bus (USB).

A monitor 1291 or other type of display device is also connected to thesystem bus 1221 via an interface, such as a video interface 1290. Inaddition to the monitor, computers may also include other peripheraloutput devices such as printer 1296 and audio device(s) 1297, which maybe connected through an output peripheral interface 1295.

The computer 1210 operates in a networked environment using logicalconnections to one or more remote computers, such as a remote computer1280. The remote computer 1280 may be a personal computer, a server, arouter, a network PC, a peer device or other common network node, and asa function of its particular implementation, may include many or all ofthe elements described above relative to the computer 1210, althoughonly a memory storage device 1281 has been illustrated in FIG. 12. Thelogical connections depicted in FIG. 12 include a local area network(LAN) 1281 and a wide area network (WAN) 1273, but may also includeother networks. Such networking environments are commonplace in offices,enterprise-wide computer networks, intranets and the Internet.

When used in a LAN networking environment, the computer 1210 isconnected to the LAN 1271 through a network interface or adapter 1270.When used in a WAN networking environment, the computer 1210 typicallyincludes a modem 1272 or other means for establishing communicationsover the WAN 1273, such as the Internet. The modem 1272, which may beinternal or external, may be connected to the system bus 1221 via theuser input interface 1260, or other appropriate mechanism. In anetworked environment, program modules depicted relative to the computer1210, or portions thereof, may be stored in the remote memory storagedevice. By way of example and not limitation, FIG. 12 illustrates remoteapplication programs 1285 as residing on memory device 1281. The networkconnections shown are exemplary and other means of establishing acommunications link between the computers may be used.

CONCLUSION

Although conventional differential-domain mesh deformation techniquespreserve surface detail as a mesh is deformed, such existing techniquestypically produce objectionable pinching and intersection artifacts whenthe deformation is large. System 100 of FIG. 1 addresses these problemsby preserving volumetric details represented by the volumetric graphLaplacian. This solution avoids the intricacies of solidly meshingcomplex objects. Although the systems and methods for large meshdeformation using the volumetric graph Laplacian have been described inlanguage specific to structural features and/or methodologicaloperations or actions, it is understood that the implementations definedin the appended claims are not necessarily limited to the specificfeatures or actions described. Rather, the specific features andoperations of system 100 are disclosed as exemplary forms ofimplementing the claimed subject matter.

1. A computer-implemented method comprising: receiving information froma user indicating how an original mesh is to be deformed; and deformingthe original mesh based on the information and a volumetric differentialoperator applied to a volumetric graph generated from the original mesh.2. A method of claim 1, wherein the information is one or more 2-Dcontrol curves derived from one or more respective 3-D control curvesspecified with respect to the original mesh.
 3. A method of claim 1,wherein the information is one or more new 2-D control curves specifiedby a user to represent deformation of the original mesh.
 4. A method ofclaim 1, wherein deforming the original mesh is independent ofsolidly-meshing surface interior of the original mesh.
 5. A method ofclaim 1, wherein the volumetric differential operator is a Laplacian ofthe volumetric graph.
 6. A method of claim 1, wherein the volumetricdifferential operator is a Laplacian of the volumetric graph, theLaplacian of the volumetric graph encoding volumetric details of theoriginal mesh as a volumetric difference between each point of multiplepoints in a volumetric graph and a volumetric average of neighbors ofeach point.
 7. A method of claim 1, wherein the volumetric differentialoperator is a Laplacian of the volumetric graph, the Laplacian of thevolumetric graph encoding volumetric details to impose volumetricconstraints that prevent unnatural changes in volume when deforming theoriginal mesh, the volumetric details including points outside of theoriginal mesh and a simple lattice-structure of points inside of theoriginal mesh.
 8. A method of claim 1, wherein the method furthercomprises: allowing a user to specify one or more 3-D control curves onthe surface of the original mesh; presenting a respective 2-D controlcurve to the user corresponding to at least one of the one or more 3-Dcontrol curves; and allowing the user to modify the 2-D control curve tospecify movement of a set of points associated with the 2-D controlcurve responsive to deformation.
 9. A method of claim 1, wherein themethod further comprises generating the volumetric graph by: creatinginside and outside graph structures, the inside graph structure being afirst lattice constructed to lie within the original mesh, the outsidegraph structure being a second lattice constructed to lie outside of theoriginal mesh; building a connection between the inside graph structureand the original mesh; and connecting details of the outside graphstructure with the original mesh.
 10. A method of claim 1, wherein themethod further comprises generating the volumetric graph by: creatinginside and outside graph structures, the inside graph structure being afirst lattice constructed to lie within the original mesh, the outsidegraph structure being a second lattice constructed to lie outside of theoriginal mesh; preventing large volume changes during large meshdeformation operations associated with the original mesh usinginformation based on the inside graph structure; and obviating localself-intersection of vertices during large mesh deformation operationsassociated with the original mesh based on information based on theoutside graph structure.
 11. A method of method of claim 1, whereindeforming the original mesh further comprises balancing preservation oforiginal surface details associated with the original mesh, a user'schosen deformation locations, and preservation of volumetric detailsspecified by a Laplacian of the volumetric graph.
 12. Acomputer-implemented method comprising: presenting a user interface to auser, the user interface displaying a 3-D mesh; allowing the user tospecify a 3-D control curve with respect to the 3-D mesh; projecting the3-D control curve onto a plane as a 2-D control curve; allowing the userto edit the 2-D control curve to create a modified control curve thatspecifies targeted deformation of the 3-D mesh; and deforming the 3-Dmesh based on a volumetric graph Laplacian derived from the 3-D mesh andthe modified control curve.
 13. A method of claim 12, wherein allowingthe user to edit the 2-D control curve further comprises presenting theuser with an opportunity to create a new curve, the new curve being themodified control curve.
 14. A method of claim 12, wherein allowing theuser to edit the 2-D control curve further comprises presenting B-splinecontrol points on the 2-D control curve, the B-spline control pointsbeing selectable for manipulating shape and size of the 2-D controlcurve.
 15. A method of claim 12, wherein deforming the 3-D mesh furthercomprises: creating a volumetric graph based on vertices of the 3-Dmesh, the volumetric graph comprising a simple-lattice of verticesinside of a surface associated with the 3-D mesh and vertices outside ofthe surface; and determining a Laplacian of the volumetric graph toencode volumetric details as a difference between each point of multiplepoints in the volumetric graph and an average of points neighboring thepoint.
 16. A method of claim 12, wherein deforming the 3-D mesh furthercomprises preventing large volume changes during large mesh deformationof the original mesh using information from a simple lattice formedinside of the 3-D mesh.
 17. A method of claim 12, wherein deforming the3-D mesh further comprises preventing self-intersections of volumeduring large mesh deformations of the 3-D mesh using information from agraph generated outside of a surface of the 3-D mesh.
 18. A method ofclaim 12, wherein deforming the 3-D mesh further comprises balancingpreservation of original surface details associated with the 3-D mesh, auser's chosen deformation locations, and preservation of volumetricdetails specified by the volumetric graph Laplacian.
 19. A method ofclaim 12, further comprising creating a simple-lattice graph structureinside of the 3-D mesh using simplification envelopes to iterativelyoffset each vertex of multiple vertices of the original mesh in thedirection opposite normal of the vertex; generating an outside graph byiteratively offsetting each vertex of the original mesh outwards of asurface corresponding to the original mesh, the outside graph comprisingvertices outside of the 3-D mesh; building connections between theinside and outside graphs and the original mesh to create a volumetricgraph.
 20. A method of claim 19, further comprising simplifying thevolumetric graph using edge collapse and smoothing operations.